Technical Field
The invention is related to peer-to-peer (P2P) file sharing, and in particular, to a system and method for P2P file sharing that enables on-demand multimedia streaming while minimizing server bandwidth requirements.
Related Art
Video-on-demand (VoD), also referred to as on-demand video streaming, has become an extremely popular service on the Internet. For example, the well known “YouTube.com,” web site states that it currently serves approximately 100 million videos per day to visiting client computers, with nearly 20 million unique visitors per month. Other examples of major Internet VoD publishers include MSN® Video, Google® Video, Yahoo® Video, CNN®, and a plethora of other VoD sites.
Much of the VoD being streamed over the Internet today is encoded in the 200-400 Kbps range. At these rates, Internet Service Providers (ISPs) or Content Delivery Networks (CDNs) typically charge video publishers on the order of about 0.1 to 1.0 cent per video minute. Consequently, serving millions of videos to millions of viewers can result in server bandwidth costs reaching millions of dollars per month. Unfortunately, these costs are expected to increase as demand increases and as higher-quality videos (e.g., videos with rates up to 3 Mbps or more) are made available for download.
Consequently, several peer-to-peer (P2P) based schemes have been suggested or implemented in an attempt to limit server bandwidth requirements in order to control the escalating bandwidth costs. In general, a peer-to-peer (P2P) network is a network that relies on the computing power and bandwidth of participant peers rather than a few large servers. The basic idea of peer-to-peer (P2P) networks is to allow each peer in the network to directly share individual files, and/or to assist a server in distributing either individual files or streaming media content. As is well known to those skilled in the art, there are a large number of conventional approaches to implementing P2P networks.
Most peer-assisted VoD belongs to the category of the single video approach where cooperating peers help to deliver parts of a single video at any given time, rather than parts of multiple videos, and where each peer may be at a different point in the playback of the video. In contrast, live streaming of videos, where all peers are at the same point in the video playback are often based on application-level multicast (ALM) protocols for media streaming. In particular, in these ALM-based schemes, the peer nodes are self organized into an overlay tree over an existing IP network. The streaming data is then distributed along the overlay tree. The cost of providing bandwidth is then shared amongst the peer nodes, thereby reducing the bandwidth burden (and thus dollar cost) of running the media server. However, one problem with such schemes is that the leaf nodes of the distribution tree only receive the streaming media and do not contribute to content distribution. Several related conventional schemes address some of the aforementioned content distribution limitations of generic ALM-based schemes by using multiple distribution trees that span the source and the peer nodes. Each “tree” can then transmit a separate piece of streaming media. As a result, all peer nodes can be involved in content distribution.
A somewhat related conventional P2P media streaming solution uses a “cache-and-relay” approach such that peer nodes can serve clients with previously distributed media from its cache. Yet another P2P-based scheme combines multiple description coding (MDC) of video and data partitioning, and provides a VoD system with a graceful quality degradation as peers fail (or leave the network) with a resulting loss of video sub-streams. Still another P2P-based VoD scheme has applied network coding theory to provide a VoD solution.
In contrast to the single video approach, some conventional P2P-based schemes do support a multi-video VoD approach. For example, one such scheme uses erasure resilient coding (ERC) to partially cache portions of a plurality of previously streamed videos, with the proportion of the media cached by each peer being proportional to the upload bandwidth of the peer. The peers then serve portions of their cached content to other peers to assist in on-demand streaming of multiple videos.